Hyper-converged infrastructure systems are systems for integrating processing, storage, and networking components of a multi-component computing system. Unlike converged systems, in which building blocks of the sub-systems remain discrete (e.g., the storage sub-system and the server sub-system are separate), hyper-converged infrastructure systems use virtualization to manage workloads through a single interface (e.g., a top of the rack switch). The hyper-converged infrastructure includes multiple node elements (e.g., bare metal computer systems), with their own compute, storage, and networking capabilities. The number of node elements is determined based on the capacity requirements and can be changed dynamically over time.
However, existing hyper-converged infrastructure systems treat the connected nodes as having homogeneous processing and storage capabilities. Thus, if the actual hardware for the nodes differs in actual resources and capabilities, the tasks to be performed by the hyper-converged infrastructure system are allocated without regard to those differences. As such, without any means of determining node capabilities and allocating tasks based on those capabilities, existing hyper-converged infrastructure systems function below their optimal efficiency.